package com.gopay.remote.fundcps.service;

import com.gopay.common.domain.eis.fund.rtfund.RtCommunicateMessage;
import com.gopay.remote.fundcps.model.FundcGopayOpenAcc;
import com.gopay.remote.fundcps.vo.FundcOpenAcctConsoleVO;

import java.util.List;
import java.util.Map;

/**
 * @author xinj.xue
 * @description：开户服务接口
 * @date 2017-04-05 10:16
 **/
public interface FundcGopayOpenAccService {
    int deleteByPrimaryKey(Long keyId);

    Long insert(FundcGopayOpenAcc record);

    int insertSelective(FundcGopayOpenAcc record);

    FundcGopayOpenAcc selectByPrimaryKey(Long keyId);

    int updateByPrimaryKeySelective(FundcGopayOpenAcc record);

    int updateByPrimaryKey(FundcGopayOpenAcc record);

    int countOpenAcctInfo(Map<String, Object> param);

    List<FundcOpenAcctConsoleVO> listOpenAcctInfo(Map<String, Object> param);

    String selectAcctIdByCustId(String custId);

    List<FundcGopayOpenAcc> listFundbOpenAccs(Map<String,Object> param);

    String subItemValue(String custId);

    Map selectCustInfo(Map<String, String> param);

    String getNextId();

    void executeCronJob();

    RtCommunicateMessage doOpenFundcAcc(FundcGopayOpenAcc openAcc, Map<String, Object> param);

    Map checkAuthAndRealName(String custId);

    /**
     * 定时刷新基金用户开户状态
     */
    void executeFlushAcctStatus();
}
